<?php

/*
  ============================================================
  =    ING. Juan M. Carrizalez 0412-7449583 AGROPATRIA C.A   =
  ============================================================
  =                SISTEMA VEHICULOS CAKEPHP 1.2             =
  ============================================================
 */

class VehiculosController extends AppController {

  var $name = 'Vehiculos';
  var $uses = array('Bitacora', 'Mensaje', 'Usuario', 'Vehiculo', 'Marca', 'Modelo', 'Tipo_vehiculo', 'Clase', 'Uso', 'Pai', 'Estado', 'Gps_tracker', 'Gps_vehiculo', 'Estatu', 'Est_vehiculo', 'Documento', 'Doc_vehiculo', 'Poliza', 'Pol_vehiculo','Provedor');
  var $helpers = array('Html', 'Form', 'Ajax', 'Javascript', 'Cargar'); //, 'Number'
  var $layout = "ajax";
  var $paginate = array('limit' => 15);
  var $modelop = 'Vehiculo';
  
   
  

  function beforeFilter() {
    $this->validar();
  }

  function listado($donde = null, $busq = null) {

    if ($busq != null)
      $this->buscador($donde, $busq);
    else
      $this->ftodo($this->modelop);
    $this->set('donde', $donde);
    $this->set('busq', $busq);
  }

  function pdf_todo() {
    $this->ftodo($this->modelop);
  }

  function modificar($id = null, $donde = null, $busq = null) {
    $this->set('donde', $donde);
    $this->set('busq', $busq);
    $this->script($this->div('v'), $this->div('l')); //(1,0)
    $this->select('Marca', 1);
    $this->select('Modelo', 1);
    $this->select('Clase', 1);
    $this->select('Gps_tracker', 1);
    //$this->funo('Gps_vehiculo', $id);
    $this->set('sim', $this->Gps_vehiculo->find('first', array('conditions' => array("Gps_vehiculo.vehiculo_id" => $id))));
    //$this->select('Gps_vehiculo', 1,'vehiculo_id',$id);
    
    $Pol_vehiculo = $this->Pol_vehiculo->find('all', array('conditions' => array("Pol_vehiculo.vehiculo_id" => $id), 'order' => "Pol_vehiculo.id"));
    $this->set('Pol_vehiculo', $Pol_vehiculo);
    // echo 'bbb>>>'.$Pol_vehiculo[0]['Pol_vehiculo']['fecha_vencimiento'];
    $this->select('Uso', 1);
    $this->select('Tipo_vehiculo', 1);
    $this->select('Pai', 1);
    $this->rif('J');
    $this->anio();
    //$this->select('Estatu', 1, null, null, 'id');
    $this->set('Estatu', $this->all('Estatu', 1));
    
    /*
     $usuario = $this->Estatu->find('first', array('conditions' => array('Estatu.estado' => 1), 'order' => 'Estatu.id'));
     echo '>>>>>>>><<'.$usuario['Estatu']['valor'];
    */
   
    
    $this->set('Documento', $this->all('Documento', 1));
    $this->set('Poliza', $this->all('Poliza', 1));
    $data=$this->funo($this->modelop, $id);
   
   // $valor = $this->Doc_vehiculo->find('all', array('conditions' => array("Doc_vehiculo.estado" => 1,"Doc_vehiculo.vehiculo_id" => $id), 'order' => "Doc_vehiculo.id"));
    
    
    $this->set('Doc_vehiculo', $this->allcon('Doc_vehiculo', 1,$id,'vehiculo_id'));
    //Doc_vehiculo
    //echo '>>>>'.$data['Vehiculo']['proveedor_id'];
       
    $this->set('rif_', $rif_);
    $this->set('tipo_rif', $tipo_rif);
    $datax = $this->Provedor->find('first', array('conditions' => array("Provedor.id" => $data['Vehiculo']['proveedor_id']), 'order' => "Provedor.id"));
  
    $this->set('datax', $datax);
    
    
  }

  function nuevo($donde = null, $busq = null) {
     clearCache();
      echo $this->loadModel('Marca');
      $this->log("Algo que no hace nada!");
      $this->log('aqui va el sql.', 'juan_sql.txt');
     //debug($this->select('Marca', 1), true, true);
    // log ($this->select('Marca', 1), $nivel = 7);
    $this->set('donde', $donde);
    $this->set('busq', $busq);
   // $this->script($this->div('v'), $this->div('l')); //(1,0)
   $this->select('Marca', 1);
   // Debugger::dump($this->select('Marca', 1));
    $this->select('Modelo', 1);
    $this->select('Clase', 1);
    $this->select('Uso', 1);
    $this->select('Tipo_vehiculo', 1);
    $this->select('Pai', 1);
    $this->rif('J');
    $this->anio();
    $this->select('Estatu', 1, null, null, 'id');
    $this->set('Documento', $this->all('Documento', 1));
    $this->set('Poliza', $this->all('Poliza', 1));
  }

  function activar($id, $donde = null, $busq = null) {
    $valor = $this->consulta($id, $this->modelop, 'estado');
    $this->actualizar_estado($id, $this->modelop, $valor);
    $this->set('donde', $donde);
    $this->set('busq', $busq);
    if ($busq != null)
      $this->buscador($donde, $busq);
    else {
      $this->ftodo($this->modelop);
      $this->listado();
      $this->render('listado');
    }
  }

  function existe($a, $b, $i = null) {
    $valor = $this->Vehiculo->find('first', array('conditions' => array($this->modelop . ".placa" => "$a")));
    if ($valor[$this->modelop]['id'] == $i)
      return false;
    else if ($valor[$this->modelop]['placa'] != '')
      return true;
    else
      return false;
  }
  /*
  function existe_n_gps($a, $b, $i = null) {
    $valor = $this->Vehiculo->find('first', array('conditions' => array($this->modelop . ".placa" => "$a")));
    if ($valor[$this->modelop]['id'] == $i)
      return false;
    else if ($valor[$this->modelop]['placa'] != '')
      return true;
    else
      return false;
  }
  */
  
  function guardar() {
    $d = $this->data;
    $cont = $this->name;
    $funt = 'guardar';
    $modelo = $this->modelop;
  // echo extract($d);
   /*
      echo '<br />/////////////////DATOS VEHICULO ////////////////////////';
      echo '<br />marca='.$d['marca'];
      echo '<br />modelo='.$d['modelo'];
      echo '<br />tipo='.$d['tipo'];
      echo '<br />anio='.$d['anio'];
      echo '<br />clase='.$d['clase'];
      echo '<br />/////////////////GPS ////////////////////////';
      echo '<br />sino='.$d['sino'];
      echo '<br />modelo_gps='.$d['modelo_gps'];
      echo '<br />n_gps='.$d['n_gps'];
      echo '<br />/////////////////DATOS VEHICULO ////////////////////////';
      echo '<br />serial_motor='.$d['serial_motor'];
      echo '<br />chasis='.$d['chasis'];
      echo '<br />serial_carroceria='.$d['serial_carroceria'];
      echo '<br />placa='.$d['placa'];
      echo '<br />color='.$d['color'];
      echo '<br />uso='.$d['uso'];
      echo '<br />/////////////////DIRECCION ////////////////////////';
      echo '<br />pais='.$d['pais'];
      echo '<br />estado='.$d['estado'];
      echo '<br />municipio='.$d['municipio'];
      echo '<br />parroquia='.$d['parroquia'];
      echo '<br />direccion='.$d['direccion'];
      echo '<br />/////////////////PROVEDOR ////////////////////////';
      echo '<br />tipo_rif='.$d['tipo_rif'];
      echo '<br />rif='.$d['rif'];
      echo '<br />/////////////////DATOS DE LA COMPRA ////////////////////////';
      echo '<br />n_factura='.$d['n_factura'];
      echo '<br />precio='.$d['precio'];
      echo '<br />/////////////////STATUS ////////////////////////';
      echo '<br />status='.$d['status'];
      echo '<br />/////////////////DOCUMENTOS ////////////////////////';
      echo '<br />corigenoriginal='.$d['corigenoriginal'];
      echo '<br />corigencopia='.$d['corigencopia'];
      echo '<br />forigenoriginal='.$d['forigenoriginal'];
      echo '<br />forigencopia='.$d['forigencopia'];
      echo '<br />cregistrooriginal='.$d['cregistrooriginal'];
      echo '<br />cregistrocopia='.$d['cregistrocopia'];

      echo '<br />/////////////////POLIZA ////////////////////////';
      echo '<br />p_resp_civil='.$d['p_resp_civil'];
      echo '<br />fecha_civil='.$d['fecha_civil'];
      echo '<br />p_casco='.$d['p_casco'];
      echo '<br />fecha_casco='.$d['fecha_casco'];
*/
      //echo '<br />status='.$d['status'];
      // echo '<br />status='.$d['status'];

    
    $poliz = $this->all('Poliza', 1);
    $codfa = '';
    for ($i = 0; $i < count($poliz); $i++) {

      if ($d[$poliz[$i]['Poliza']['disminutivo'] . "_monto"] != '' and empty($d[$poliz[$i]['Poliza']['disminutivo'] . "_fecha"])) {
        $this->mensaje_error($cont, $funt, $poliz[$i]['Poliza']['disminutivo'] . "_fecha");
        $codfa.=$poliz[$i]['Poliza']['disminutivo'] . "_fecha";
      } else {
        $codfa.='';
      }
    }

    if (empty($d['n_factura']) and empty($d['precio']) and empty($d['status']))
      $nada='';
    if (empty($d['marca']))
      $this->mensaje_error($cont, $funt, 'marca');
    else if (empty($d['modelo']))
      $this->mensaje_error($cont, $funt, 'modelo');
    else if (empty($d['tipo']))
      $this->mensaje_error($cont, $funt, 'tipo');
    else if (empty($d['anio']))
      $this->mensaje_error($cont, $funt, 'anio');
    else if (empty($d['clase']))
      $this->mensaje_error($cont, $funt, 'clase');
    else if (empty($d['sino']))
      $this->mensaje_error($cont, $funt, 'sino');
    else if ($d['sino'] == 'SI' and empty($d['modelo_gps']))
      $this->mensaje_error($cont, $funt, 'modelo_gps');
    else if ($d['sino'] == 'SI' and empty($d['n_gps']))
      $this->mensaje_error($cont, $funt, 'n_gps');
    else if (empty($d['serial_motor']))
      $this->mensaje_error($cont, $funt, 'serial_motor');
    else if (empty($d['chasis']))
      $this->mensaje_error($cont, $funt, 'chasis');
    else if (empty($d['serial_carroceria']))
      $this->mensaje_error($cont, $funt, 'serial_carroceria');
    else if (empty($d['placa']))
      $this->mensaje_error($cont, $funt, 'placa');
    else if (empty($d['color']))
      $this->mensaje_error($cont, $funt, 'color');
    else if (empty($d['uso']))
      $this->mensaje_error($cont, $funt, 'uso');
    else if (empty($d['pais']))
      $this->mensaje_error($cont, $funt, 'pais');
    else if (empty($d['estado']))
      $this->mensaje_error($cont, $funt, 'estado');
    else if (empty($d['municipio']))
      $this->mensaje_error($cont, $funt, 'municipio');
    else if (empty($d['parroquia']))
      $this->mensaje_error($cont, $funt, 'parroquia');
    else if (empty($d['municipio']))
      $this->mensaje_error($cont, $funt, 'municipio');
    else if (empty($d['direccion']))
      $this->mensaje_error($cont, $funt, 'direccion');
    else if (empty($d['tipo_rif']))
      $this->mensaje_error($cont, $funt, 'tipo_rif');
    else if (empty($d['rif']))
      $this->mensaje_error($cont, $funt, 'rif');
    else if (empty($d['rif_oculto']))
    $this->mensaje_error($cont, $funt, 'rif_oculto');
    else if ($d['rif_oculto']=='creando_nuevo')
     $this->mensaje_error($cont, $funt, 'mensaje_proveedor');
    else if (empty($d['n_factura']))
      $this->mensaje_error($cont, $funt, 'n_factura');
    else if (empty($d['precio']))
      $this->mensaje_error($cont, $funt, 'precio');
    else if ($d['status'] == '')
      $this->set('Error', "Seleccione un Estatus");
    else if (!isset($d['id']) and $this->existe($this->mayuscula($d['placa']), null)) {
      $this->set('Error', "Esta placa [" . $d['placa'] . "] Ya se Encuentra Registrada ");
      $this->focus('placa');
    } else if (isset($d['id']) and $this->existe($this->mayuscula($d['placa']), null, $d['id'])) {
      $this->set('Error', "Esta placa [" . $d['placa'] . "] Ya se Encuentra Registrada ");
      $this->focus('placa');
    } else if ($codfa != '')
      $this->mensaje_error($cont, $funt, $codfa);

    else {
        

      if (!isset($d['id'])) {
        $vn = 0;
        $vald = "Nuevo";
        $med = "Nuevo $modelo Registrado exitosamente!!!";
      } else {
        $vn = 1;
        $vald = "Modificar";
        $med = "$modelo Modificado exitosamente!!!";
      }
      $this->data = null;
      $this->$modelo->query('BEGIN  WORK');
      if (isset($d['id']))
        $this->data["$modelo"]['id'] = $d['id'];
      $this->data["$modelo"]['estado'] = 1;
      $this->data["$modelo"]['tipo_vehiculo_id'] = $d['tipo'];
      $this->data["$modelo"]['marca_id'] = $d['marca'];
      $this->data["$modelo"]['modelo_id'] = $d['modelo'];
      $this->data["$modelo"]['serial_motor'] = $this->mayuscula($d['serial_motor']);
      $this->data["$modelo"]['serial_carroceria'] = $this->mayuscula($d['serial_carroceria']);
      $this->data["$modelo"]['chasis'] = $this->mayuscula($d['chasis']);
      $this->data["$modelo"]['placa'] = $this->mayuscula($d['placa']);
      $this->data["$modelo"]['anio'] = $d['anio'];
      $this->data["$modelo"]['clase_id'] = $d['clase'];
      $this->data["$modelo"]['tipo'] = '';
      $this->data["$modelo"]['uso_id'] = $d['uso'];
      $this->data["$modelo"]['color'] = $this->mayuscula($d['color']);
      $this->data["$modelo"]['proveedor_id'] = '1';
      $this->data["$modelo"]['n_factura'] = $d['n_factura'];
      $this->data["$modelo"]['precio'] = $d['precio'];

      if ($this->$modelo->save($this->data)) {
        $id_ = $this->Vehiculo->id;
        $this->data = null;
        $this->data['Est_vehiculo']['estado'] = 1;
        $this->data['Est_vehiculo']['vehiculo_id'] = $id_;
        $this->data['Est_vehiculo']['estatus_id'] = $d['status'];
        $this->data['Est_vehiculo']['fecha'] = $this->f_actual();
        if ($this->Est_vehiculo->save($this->data)) {
          $banx = 0;
          $docum = $this->all('Documento', 1);


          for ($i = 0; $i < count($docum); $i++) {

            $this->data = null;
            $this->data['Doc_vehiculo']['estado'] = 1;
            $this->data['Doc_vehiculo']['documento_id'] = $d[$docum[$i]['Documento']['disminutivo'] . "_input"];
            $this->data['Doc_vehiculo']['vehiculo_id'] = $id_;
            $this->data['Doc_vehiculo']['original'] = $d[$docum[$i]['Documento']['disminutivo'] . "original"];
            $this->data['Doc_vehiculo']['copia'] = $d[$docum[$i]['Documento']['disminutivo'] . "copia"];
            if ($this->Doc_vehiculo->saveall($this->data)) {
              $banx = 1;
            } else {
              $banx = 0;
            }
          }
          if ($banx == 1) {
            $banp = 0;

            for ($i = 0; $i < count($poliz); $i++) {
              $this->data = null;
              $this->data['Pol_vehiculo']['estado'] = 1;
              $this->data['Pol_vehiculo']['poliza_id'] = $d[$poliz[$i]['Poliza']['disminutivo'] . "_input"];
              $this->data['Pol_vehiculo']['vehiculo_id'] = $id_;
              $this->data['Pol_vehiculo']['monto'] = $d[$poliz[$i]['Poliza']['disminutivo'] . "_monto"];
              $this->data['Pol_vehiculo']['fecha_vencimiento'] = $d[$poliz[$i]['Poliza']['disminutivo'] . "_fecha"];
              if ($this->Pol_vehiculo->saveall($this->data)) {
                $banp = 1;
              } else {
                $banp = 0;
              }
            }
            if ($banp == 1) {
              if ($d['sino'] == 'SI') {
                $this->data = null;
                $this->data['Gps_vehiculo']['estado'] = 1;
                $this->data['Gps_vehiculo']['vehiculo_id'] = $id_;
                $this->data['Gps_vehiculo']['gps_tracker_id'] = $d['modelo_gps'];
                $this->data['Gps_vehiculo']['sim'] = $d['n_gps'];

                if ($this->Gps_vehiculo->saveall($this->data)) {
                  if ($this->auditoria($id_, $modelo, $vald)) {
                    $this->$modelo->query('COMMIT');
                    $this->set('Exito', $med);
                  } else {
                    $this->$modelo->query('ROLLBACK');
                    $this->set('Error', 'Error Guardando bitacora');
                  }
                } else {
                  $this->$modelo->query('ROLLBACK');
                  $this->set('Error', 'Error Guardando GPS');
                }
              } else {
                if ($this->auditoria($id_, $modelo, $vald)) {
                  $this->$modelo->query('COMMIT');
                  $this->set('Exito', $med);
                } else {
                  $this->$modelo->query('ROLLBACK');
                  $this->set('Error', 'Error Guardando bitacora');
                }
              }
            } else {
              $this->$modelo->query('ROLLBACK');
              $this->set('Error', 'Error Guardando Poliza');
            }
          } else {
            $this->$modelo->query('ROLLBACK');
            $this->set('Error', 'Error Guardando Documento');
          }
        } else {
          $this->$modelo->query('ROLLBACK');
          $this->set('Error', 'Error Guardando Est_vehiculo');
        }
      } else {
        $this->$modelo->query('ROLLBACK');
        $this->set('Error', "Datos del $modelo no fueron guardados");
      }
      $this->script($this->div('l'), $this->div('v')); //(1,0)

      if (empty($d['donde']))
        $this->set('donde', null);
      else
        $this->set('donde', $d['donde']);

      if (empty($d['busq']))
        $this->set('busq', null);
      else
        $this->set('busq', $d['busq']);


      if ($d['busq'] != null)
        $this->buscador($d['donde'], $d['busq']);
      else {
        $this->ftodo($modelo);
        $this->listado();
        $this->render('listado');
      }
    }
  }

  function gps($id = null, $sino = null) {
    // echo $sino;
    //  echo $id;

    $this->set('sino', $sino);
    $this->select('Gps_tracker', 1);
    
    if($id!='vacio'){
    $this->set('cond', 1);
    $this->funo($this->modelop, $id);
    $this->set('sim', $this->Gps_vehiculo->find('first', array('conditions' => array("Gps_vehiculo.vehiculo_id" => $id))));
    }
  }
  /*
    function eliminar($id, $donde = null, $busq = null) {
        $modelo = $this->modelop;
         
            $this->$modelo_v->query("DELETE FROM sv_vehiculos  WHERE id=$id");
            $this->set('Exito', "Borrado el Vehiculo con id= " . $id . "");
        

        if ($donde == null)
            $this->set('donde', null);
        else
            $this->set('donde', $donde);

        if ($busq == null)
            $this->set('busq', null);
        else
            $this->set('busq', $busq);


        if ($busq != null)
            $this->buscador($donde, $busq);
        else {
            $this->ftodo($modelo);
            $this->listado();
            $this->render('listado');
        }
    }
  */
  
  
  

}

?>
